package py.edu.ucsa.sisalews.services.rest.impl;

import java.util.List;

import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;

import py.edu.ucsa.sisalews.config.SisalewsApplicationContextProvider;
import py.edu.ucsa.sisalews.model.services.impl.PrioridadServiceImpl;
import py.edu.ucsa.sisalews.persistence.dto.PrioridadDTO;
import py.edu.ucsa.sisalews.services.rest.PrioridadREST;

@Path("/prioridad")
public class PrioridadRESTImpl implements PrioridadREST{
	
private ApplicationContext ctx;
	
	@Autowired
	private PrioridadServiceImpl prioridadService;
	
	public PrioridadRESTImpl(){
		ctx = SisalewsApplicationContextProvider.getContext();
	}
	
	@Produces({"application/json"})
	@GET
	public List<PrioridadDTO> listar() {
		prioridadService = (PrioridadServiceImpl)ctx.getBean("prioridadService");
		return prioridadService.listar();
	}

	@Path("/insertar")
	@POST
	public Response insertar(String prioridad) {
		prioridadService = (PrioridadServiceImpl)ctx.getBean("prioridadService");
		String result = prioridadService.insertar(prioridad);
		return Response.ok(result).type(MediaType.APPLICATION_JSON).build();
	}

	@Path("/modificar")
	@PUT
	public Response modificar(String prioridad) {
		prioridadService = (PrioridadServiceImpl)ctx.getBean("prioridadService");
		String result =  prioridadService.actualizar(prioridad);
		return Response.ok(result).type(MediaType.APPLICATION_JSON).build();
	}

	@Path("/{id}")
	@DELETE
	public Response eliminar(@PathParam("id") Integer id) {
		prioridadService = (PrioridadServiceImpl)ctx.getBean("prioridadService");
		prioridadService.eliminar(id);
		return Response.ok().type(MediaType.APPLICATION_JSON).build();
	}
	
			
	public void setPrioridadService(PrioridadServiceImpl prioridadService) {
		this.prioridadService = prioridadService;
	}

}
